Skip to content

Conversation

MohabCodeX
Copy link
Contributor

This PR replaces the complex ACL fingerprinting from PR #4409 with a much simpler and more efficient approach.

Thanks for @ArranTuna for mentioning a proper solution.

@MohabCodeX MohabCodeX force-pushed the fix/improve-aclrequest-detection branch from 9f17f56 to 07cb21d Compare September 21, 2025 20:58
@MohabCodeX
Copy link
Contributor Author

related #4484


std::string CalculateACLRequestFingerprint();
bool HasACLRequestsChanged();
protected:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For accessing members, but i made a better solution now 👍🏻

@PerikiyoXD
Copy link
Contributor

Is this really a fix? Or this became an oversimplification refactor over a bug?

@ArranTuna
Copy link
Collaborator

Yes it fixes #4484 I have tested it.

@PerikiyoXD
Copy link
Contributor

I've written my concerns about this and the prior PR:
#1824

@ArranTuna
Copy link
Collaborator

I've written my concerns about this and the prior PR: #1824

This PR basically does revert that previous PR and replaces it with a simpler fix for the original bug. How it works now is that if a resource has ACL requests, it doesn't have to be started to output the requests to the server console, if you changed them and did refresh, the changes wouldn't be registered, but now when doing refresh, the changes are registered to these non started resources. Currently the only way to get the ACL requests to get registered is to rename the resource and execute refresh. Now you don't have to rename a resource.

@ArranTuna ArranTuna added the bugfix Solution to a bug of any kind label Sep 26, 2025
@PerikiyoXD
Copy link
Contributor

PerikiyoXD commented Sep 26, 2025

refreshall triggers the acl reload check

@ArranTuna
Copy link
Collaborator

That's true, but you may not want to restart all changed resources, it can be very slow and freeze the server for 1 minute, or you just might not want some changes to be applied.

@PerikiyoXD
Copy link
Contributor

We can agree that you brought into the table that the culprit of the preference, is a performance issue.

CMD5Hasher is the slowness when refreshall is triggered.
imagen

This is to be addressed sometime using CryptoPP implementation instead of handrolled and see if the performance is improved (Which I assume will improve at least 40%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugfix Solution to a bug of any kind
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants